#include <stdio.h>
#include <stdlib.h>
#include "maquinaVirtual.h"
#include "modoDebug.h"

void Config(char *entrada, char *metodo, unsigned memoria, unsigned pagina,	unsigned qtPags, char*saida)
{
	if (modoDebug)
	{
		FILE *fp;
		fp = fopen(saida, "w");
		fprintf(fp,
				"Arquivo de entrada: %s\nMetodo: %s\nTamanho da memoria: %u\nTamanho da pagina: %u\nQuantidade de paginas: %u",
				entrada, metodo, memoria, pagina, qtPags);
		fclose(fp);
	}
}

void AlocouLivre(unsigned pagina, char rw, unsigned indice, char*saida)
{
	if (modoDebug)
	{
		FILE *fp;
		fp = fopen(saida, "a");
		fprintf(fp,
				"\nAcessou pag: %u - Modo %c - Alocou pag na memoria indice: %u",
				pagina, rw, indice);
		fclose(fp);
	}
}
void EncontrouPag(unsigned pagina, char rw, unsigned indice, char*saida)
{
	if (modoDebug)
	{
		FILE *fp;
		fp = fopen(saida, "a");
		fprintf(fp,
				"\nEncontrou pag: %u - Modo %c - Pag esta na memoria indice: %u",
				pagina, rw, indice);
		fclose(fp);
	}
}
void Substitui(unsigned NovaPag, char rw, unsigned OldPag, int pagAlterada, unsigned indice, char*saida)
{
	char* alterada;
	if (pagAlterada)
	{
		alterada = "Sim";
	} else {
		alterada = "Nao";
	}
	if (modoDebug)
	{
		FILE *fp;
		fp = fopen(saida, "a");
		fprintf(fp,
				"\nSubstituiu pag: %u - pela pag: %u - Modo %c - No indice: %u - Escreveu em disco: %s",
				OldPag, NovaPag, rw, indice, alterada);
		fclose(fp);
	}
}
